import 'package:demo/util/asset.dart';
import 'package:flutter/material.dart';
import './pages/Tabs.dart';
import 'dart:convert';

void getString() {
  var myData = SpUtil.preferences.getString('myData');
  var today = DateTime.now();
  // 如果myData是空，首次打开，使用默认值， 否则使用数组最后一个元素（最新一年）
  if (myData == null) {
    var sharedPreferencesData = [
      // 年
      {
        'year': today.year,
        'sumIncome': 0, // 总收入
        'sumSpend': 0, // 总支出
        'monthList': [
          // 月
          {
            'month': today.month,
            'sumIncome': 0, // 总收入
            'sumSpend': 0, // 总支出
            'dayList': [
              // 日
              {
                'time': today.day,
                'sumIncome': 0, // 总收入
                'sumSpend': 0, // 总支出
                'dayDetail': [
                  // {
                  //   'select': '生活日用',
                  //   'type': '支出',
                  //   'time': 1607354022000,
                  //   'remark': '',
                  //   'rollOut': 0, // 转账——转出
                  //   'into': 0, // 转账——转入
                  //   'sumIncome': 40, // 总收入
                  //   'sumSpend': 40 // 总支出
                  // }
                ]
              },
            ]
          }
        ]
      }
    ];
    var data = jsonEncode(sharedPreferencesData);
    SpUtil.preferences.setString('myData', data);
    SpUtil.preferences.setString('today', today.day.toString());
  } else {
    // 判断是否为每天第一次登陆
    if (SpUtil.preferences.getString('today') != today.day.toString()) {
      SpUtil.preferences.setString(
        'today',
        today.microsecondsSinceEpoch.toString(),
      );
      var year = today.year;
      var month = today.month;
      var day = today.day;
      bool yearFlag = false;
      bool monthFlag = false;
      var dayData = {
        'time': day,
        'sumIncome': 0,
        'sumSpend': 0,
        'dayDetail': []
      };
      var monthData = {
        'month': month,
        'sumIncome': 0,
        'sumSpend': 0,
        'dayList': [dayData]
      };
      var yearData = {
        'year': year,
        'sumIncome': 0,
        'sumSpend': 0,
        'monthList': [monthData]
      };
      var res = jsonDecode(myData);
      for (var item in res) {
        if (year == item['year']) {
          yearFlag = true;
          for (var monthItem in item['monthList']) {
            if (month == monthItem['month']) {
              monthFlag = true;
              monthItem['dayList'].add(dayData);
              break;
            }
          }
          if (!monthFlag) {
            item['monthList'].add(monthData);
          }
          break;
        }
      }
      if (!yearFlag) {
        res.add(yearData);
      }
      SpUtil.preferences.setString('myData', jsonEncode(res));
    }
  }
  SpUtil.preferences.setBool('isTab', false);
  // SpUtil.preferences.remove('myData');
  // SpUtil.preferences.remove('isTab');
  print(myData);
}

void realRunApp() async {
  bool suc = await SpUtil.getInstance();
  print('init-----' + suc.toString());
  runApp(MyApp());
}

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  realRunApp();
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    getString();
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Tabs(),
    );
  }
}
